When a computer boots from a hard disk drive, it is necessary for the computer's BIOS to be able to identify a bootable or active partition from which an operating system (“OS”) can be booted. Conventionally, a hard disk may be divided into up to four main partitions. When booting from a hard disk, the BIOS will read a master boot record (“MBR”), conventionally located at the first sector or first logical block address (LBA 0) of the disk. The master boot record contains a table which contains descriptions of the main partitions. One of the main partitions is conventionally marked as active, indicating that it is a “bootable” partition which should be used for booting up. The boot code portion contains a piece of code referred to as an “OS loader” which loads the kernel files of the operating system into memory from the bootable partition. However, where two or more potentially bootable main partitions are provided, for example where two different operating systems are stored in separate partitions, it is known to provide a boot code which is stored on the disk and which is operable to generate a boot menu enabling a user to select a preferred operating system.
To overcome the limitation to four primary partitions, specifications such as the Intel Extensible Firmware Interface (EFI) specification have been defined. In accordance with the EFI specification, a very large number of partitions may be defined, each identified by a globally unique identifier (GUID), a 128 bit number. A partition table, referred to as a GPT or GUID partition table, lists each of the partitions, including their beginning and end addresses and information identifying the contents or function of the partition where desired. It is possible for an MBR partition table and the (up to) four main partitions to co-exist on the same disk with EFI partitions and a GPT by defining one of the main partitions as a GPT-managed area and locating the GPT partitions in the GPT-managed area If a BIOS which is not compatible with the EFI specification attempts to boot from the hard disk, it will read the master boot record and bootable main partitions in conventional manner while ignoring the main partition holding the EFI-configured GPT and GPT partitions. The GPT specification is advantageous in that it permits up to 264 sectors of a disk to be addressed.
Where a BIOS is compatible with the EFI specification, it is operable to read both GPT's and the MBR partition table, hereinafter referred to as a legacy MBR partition table, to identify both bootable GPT partitions and bootable primary partitions, hereinafter referred to as “legacy” partitions, and generates a boot menu. In accordance with the EFI specification, the boot code contained in the legacy NBR is not run, but instead a specific root directory is specified where operating system loader programs may be found.
It is desirable that the advantages of GPT partitions become available as soon as possible, even on computers where the BIOS and operating system is incompatible with the EFI specification. Where however an operating system's files are stored in a GPT partition, on boot the operating system loader and operating system kernel will be unable to find the expected files because of the different disk structure and disk addressing system.
An aim of the invention is to provide a new or improved method whereby a non-EFI compatible operating system may be booted from GPT partition.